﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ProdeManagmente.Libs;
using ProdeManagmente.Model;
using ProdeManagmente.DAO;
using ProdeManagmente.Forms;

namespace ProdeManagmente
{
    public partial class FrmLoggin : Form
    {
        public FrmLoggin()
        {
            InitializeComponent();
            initDataBaseConn();
        }

        /**
         * Prueba que exista comunicacion con la base de datos
         */
        private void initDataBaseConn()
        {
            try
            {
                Persistencia conn = Persistencia.getInstance();
            }
            catch (BusinessException e)
            {
                new MensajeSalida(e).showMensaje();
            }
        }

        private void btnLoggin_Click(object sender, EventArgs e)
        {
            UserService userService = UserService.getUserServiceInstance();

            String code = txtUser.Text.Trim();
            String pass = txtPass.Text.Trim();

            // Encripta el password
            pass = Util.encryptPass(pass, code);
            User user = new User(code, "", "", pass);
            try
            {
                User userDB = userService.getUserByCode(user.getCode());

                if (userDB.isPassEquals(user))
                {
                    Util.userLogged = userDB;
                    this.Visible = false;
                    FrmMain frmMain = new FrmMain();
                    frmMain.Visible = true;
                }
                else
                {
                    new MensajeSalida("001", "Usuario o Contraseña incorrectas").showMensaje();
                }
            }
            catch (BusinessException E)
            {
                new MensajeSalida("001", "Usuario o Contraseña incorrectas").showMensaje();
            }
        }
    }
}
